package com.hbisdt.cet.sample.config;

import com.hbisdt.cet.sample.servlet.FilterSample;
import com.hbisdt.cet.sample.servlet.ListenerSample;
import com.hbisdt.cet.sample.servlet.ServletSample;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Arrays;

@Configuration
public class ServletConfig {

    /**
     * 注册一个Servlet组件到Spring容器中，并将其映射到指定的URL路径。
     * <p>
     * 该函数通过创建一个ServletRegistrationBean实例，将传入的Servlet组件注册到Spring容器中，
     * 并将其映射到"/servletSample"路径。该函数通常用于在Spring Boot应用中手动注册Servlet。
     *
     * @param servletSample 需要注册的Servlet组件实例，该实例必须实现Servlet接口。
     * @return ServletRegistrationBean 返回一个ServletRegistrationBean实例，该实例包含了Servlet的注册信息。
     */
//    @Bean
//    public ServletRegistrationBean getServlet(ServletSample servletSample) {
//        // 创建ServletRegistrationBean实例，将Servlet组件与URL路径进行绑定
//        ServletRegistrationBean registrationBean = new ServletRegistrationBean(servletSample, "/servletSample");
//        return registrationBean;
//    }
//
//    @Bean
//    public FilterRegistrationBean getFilter(FilterSample filterSample) {
//        FilterRegistrationBean registrationBean = new FilterRegistrationBean(filterSample);
//        registrationBean.setUrlPatterns(Arrays.asList("/toLoginPage", "/myFilter"));
//        return registrationBean;
//    }
//
//    @Bean
//    public ServletListenerRegistrationBean getListener(ListenerSample listenerSample) {
//        ServletListenerRegistrationBean servletListenerRegistrationBean =
//                new ServletListenerRegistrationBean(listenerSample);
//        return servletListenerRegistrationBean;
//    }
}
